// 定义包名为 com.jlnk.androiduidemo
package com.jlnk.androiduidemo;

// ... 其他导入 ...
// 导入其他可能的类和库

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

// 定义 SettingActivity 类，继承自 AppCompatActivity
public class SettingActivity extends AppCompatActivity {

    // 定义 UI 组件的成员变量
    private Switch switchNotification;
    private Switch switchAdminMode;
    private TextView textViewLogout;
    private LinearLayout updatePasswordLayout;
    private LinearLayout addStudentLayout;
    private LinearLayout addCourseLayout;

    // onCreate 方法是每个Activity生命周期的开始，用于初始化界面和数据
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); // 调用父类的 onCreate 方法
        setContentView(R.layout.activity_setting); // 加载 activity_setting 布局文件

        // 初始化UI控件
        updatePasswordLayout = findViewById(R.id.updatePassword);
        switchNotification = findViewById(R.id.switchNotification);
        switchAdminMode = findViewById(R.id.switchAdminMode);
        textViewLogout = findViewById(R.id.textViewLogout);
        addStudentLayout = findViewById(R.id.addStudent);
        addCourseLayout = findViewById(R.id.addCourse);

        // 设置通知开关的状态变化监听器
        switchNotification.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // 根据开关状态显示Toast消息
                if (isChecked) {
                    Toast.makeText(SettingActivity.this, "通知功能已打开", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(SettingActivity.this, "通知功能已关闭", Toast.LENGTH_SHORT).show();
                }
            }
        });

        // 设置修改密码布局的点击事件监听器，点击后跳转到修改密码界面
        updatePasswordLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SettingActivity.this, UpdatePasswordActivity.class);
                startActivity(intent);
            }
        });

        // 设置管理员模式开关的状态变化监听器，并初始设置添加学生和添加课程的可见性
        switchAdminMode.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // 根据开关状态显示或隐藏添加学生和添加课程的布局
                addStudentLayout.setVisibility(isChecked ? View.VISIBLE : View.GONE);
                addCourseLayout.setVisibility(isChecked ? View.VISIBLE : View.GONE);
            }
        });

        // 设置添加学生布局的点击事件监听器，点击后跳转到添加学生界面
        addStudentLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SettingActivity.this, AddStudentActivity.class);
                startActivity(intent);
            }
        });

        // 设置添加课程布局的点击事件监听器，点击后跳转到添加课程界面
        addCourseLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SettingActivity.this, AddCourseActivity.class);
                startActivity(intent);
            }
        });

        // 设置退出登录按钮的点击事件监听器
        textViewLogout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 清除SharedPreferences中的用户会话数据
                SharedPreferences sharedPreferences = getSharedPreferences("user_session", MODE_PRIVATE);
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.clear();
                editor.apply();

                // 显示Toast消息
                Toast.makeText(SettingActivity.this, "您已成功退出登录！", Toast.LENGTH_SHORT).show();

                // 退出当前Activity
                finish();

                // 重新启动登录界面
                Intent intent = new Intent(SettingActivity.this, LoginActivity.class);
                startActivity(intent);
            }
        });

        // 初始设置添加学生和添加课程的可见性，默认为隐藏
        switchAdminMode.setChecked(false); // 设置默认为非管理员模式
        addStudentLayout.setVisibility(View.GONE);
        addCourseLayout.setVisibility(View.GONE);
    }
}